//class AnimalShelf {
//public:
//    queue<int> cat;
//    queue<int> dog;
//    AnimalShelf() {
//
//    }
//
//    void enqueue(vector<int> animal) {
//        if (animal[1] == 0) cat.push(animal[0]);
//        if (animal[1] == 1) dog.push(animal[0]);
//    }
//
//    vector<int> dequeueAny() {
//        if (cat.empty()) return dequeueDog();
//        if (dog.empty()) return dequeueCat();
//        if (cat.front() < dog.front()) return dequeueCat();
//        else return dequeueDog();
//    }
//
//    vector<int> dequeueDog() {
//        if (dog.empty()) return { -1,-1 };
//        int id = dog.front();
//        dog.pop();
//        return { id, 1 };
//    }
//
//    vector<int> dequeueCat() {
//        if (cat.empty()) return { -1,-1 };
//        int id = cat.front();
//        cat.pop();
//        return { id, 0 };
//    }
//
//};

//class Solution {
//public:
//    vector<vector<string>> groupAnagrams(vector<string>& strs) {
//        vector<vector<string>> ret;
//        unordered_map<string, vector<string>> hash;
//        for (auto& e : strs)
//        {
//            string tmp = e;
//            sort(tmp.begin(), tmp.end());
//            hash[tmp].push_back(e);
//        }
//        for (auto& e : hash)
//        {
//            ret.push_back(e.second);
//        }
//        return ret;
//    }
//};

